﻿/* ****************************************************************************
 *
 * Copyright (c) Microsoft Corporation. 
 *
 * This source code is subject to terms and conditions of the Microsoft Public License. A
 * copy of the license can be found at http://go.microsoft.com/fwlink/?LinkID=131993. If
 * you cannot locate the Microsoft Public License, please send an email to
 * mixon@microsoft.com. By using this source code in any fashion, you are agreeing to
 * be bound by the terms of the Microsoft Public License.
 *
 * You must not remove this notice, or any other, from this software.
 *
 *
 * ***************************************************************************/

using System.Collections.Generic;
using System.Windows;

namespace MIXOnline.Descry
{
    /// <summary>
    /// Interface to aid in managing Virtualized Items in a control
    /// </summary>
    public interface ITimelineGenerateData
    {
        // control
        UIElement GetContainerForItemOverride();
        void PrepareContainerForItemOverride(UIElement container, object dataItem);
        void ClearContainerForItemOverride(UIElement container, object dataItem);
        void RepositionEntryItemsWithinTimeStackPanel(VirtualizedTimelineStackPanel tsp);

        // vertical scrollbar
        int FirstVisibleItemIndex { get; }
        int FullyVisibleItemCount { get; set; }
        Dictionary<int, int> TotalItemsCount { get; }
    }
}
